package main

import (
	"fmt"
	"github.com/gomodule/redigo/redis"
)

// 定义一个全局的pool
var pool *redis.Pool

// 当启动程序时，就初始化连接池
func init() {
	pool = &redis.Pool{
		MaxIdle:     10,  // 最大空闲连接数
		MaxActive:   0,   // 表示和数据库的最大，0表示没有限制
		IdleTimeout: 100, // 最大空闲时间
		Dial: func() (redis.Conn, error) { // 初始化链接代码，链接那个ip的redis
			return redis.Dial("tcp", "localhost:6379")
		},
	}
}

func main() {
	// 先从pool取出一个连接
	conn := pool.Get()
	defer conn.Close()

	_, err := conn.Do("Set", "name", "小汤姆")
	if err != nil {
		fmt.Println(err)
		return
	}

	// 取出
	r, errGet := redis.String(conn.Do("Get", "name"))
	if errGet != nil {
		fmt.Println(errGet)
		return
	}
	fmt.Println(r)
	// 如果我们要从pool取出连接，一定要保证链接池是没有关系

}
